//import java.util.Arrays;
//import java.util.Date;//在Java中现成的Date类

import java.util.*;
//import java.sql.*;
/**
 * import java.sql.*;这个时候就会报错
 * 因为在sql中也有Date类，所以编译器不会找到Date类
*/


//所以我们更建议显式的指定要导入的类名. 否则还是容易出现冲突的情况.

/**
 * import java.util.Arrays;
 * import java.util.Date;//在Java中现成的Date类
 * 但是我们可以使用通配符*；这个可以适配所有的这个包中的类，让它自己寻找，比如有Arrays和Date的情况下
 * 那么它调用Arrays时，那么这个通配符就会是Arrays,同理Date时 那么通配符就是Date
 */

import static java.lang.Math.*;//静态导入

public class TestDemo {

    //访问限定修饰符
    //private、default、protected、public
    //private：只有自己知道，其他人都不知道,只能在同一个包中的同一个的类中进行去使用
    //default：在同一个包中的不同类的中去使用
    //default：指的是在什么的时候都不写的情况下即默认的情况
    //protected在继承再详细的讲到（子类）


    //封装扩展之包

    /**
     * 为了更好的管理类，把多个类收集在一起成为一组，称为软件包
     * 所以在Java中也引入了包，包是对类、接口等的封装机制的体现，是一种对类或者接口等的很好的组织方式，
     * 包还有一个重要的作用：在同一个工程中允许存在相同名称的类，只要处在
     * 不同的包中即可。
     */
    public static void main1(String[] args) {
        int[] array = new int[]{1,2,3,4,5};
        String ret = Arrays.toString(array);
        System.out.println(ret);
        java.util.Date date = new java.util.Date();//所以我们在代码中的Date前直接加上java.util. ，不在前面声明

    }

    //由于我们安装了JDK文件，我们可以看到src的文件中有很多Java中的包
    //但是我们可以在idea中点击External Libraries中的rt.jar中的java的util,可以看到很多这个包的中类

    /**
     * package java.util;
     * 这个代码中的package是用来声明当前Java文件是在哪个包的底下
     * 比如我点击了Java中自带的Date类，这个声明就是Date类属于java.util包中
     */

    //所以我们更建议显式的指定要导入的类名. 否则还是容易出现冲突的情况；为了更好的显示，所以我们在代码中直接加上，不在前面声明

    //另一种导入方式：静态导入；
    public static void main(String[] args) {
        double x = 30;
        double y = 40;

        //double result1 = Math.sqrt(Math.pow(x,2)) + Math.pow(y,2));//正常写一个
        double result = sqrt(pow(x,2)) + (pow(y,2));//静态导入
        System.out.println(result);
    }

    //Java中有什么需要使用，那么就用import来导入
    //注意事项: import 和 C++ 的 #include 差别很大. C++ 必须 #include 来引入其他文件内容, 但是 Java 不需要.
    //import 只是为了写代码的时候更方便. import 更类似于 C++ 的 namespace 和 using



}
